package co.udistrital.ui;

import java.io.IOException;
import java.util.Vector;

import co.udistrital.dao.ILoadData;
import co.udistrital.dao.ISaveData;
import co.udistrital.dao.LoadDataImp;
import co.udistrital.dao.SaveDataImp;
import co.udistrital.model.Persona;

public class Agenda {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		System.out.println("Agenda Digital");
		System.out.println("++++++------------++++++");
		System.out.println("Seleccione 1 para adicionar Contacto");
		System.out.println("Seleccione 2 para consultar Contacto");
		System.out.println("Seleccione 3 para borrar Contacto por Telefono");
		System.out.println("Seleccione 4 para salir");
		
		String s = "";
		String nombres;
		String apellidos;
		String telefono;
		Integer noTelefonico;
		char c;
		
		while(( c = (char) System.in.read()) != '\n')
		{
			s = s+ String.valueOf(c);
			
		}
		
		Integer o;
		try{
			o = Integer.valueOf(s.trim());
			s = "";
		} catch ( NumberFormatException e){
			o = 0;
		}
		
		
		if (o.intValue() == 1)
		{
			System.out.println("Ingrese los nombres");
			while(( c = (char) System.in.read()) != '\n')
			{
				s = s + String.valueOf(c);
			}
			nombres = s.trim();
			s = "";
			
			System.out.println("Ingrese los apellidos");
			while(( c = (char) System.in.read()) != '\n')
			{
				s = s + String.valueOf(c);
			}
			apellidos = s.trim();
			s = "";
			
			System.out.println("Ingrese el telefono");
			while(( c = (char) System.in.read()) != '\n')
			{
				s = s + String.valueOf(c);
			}
			noTelefonico = Integer.valueOf(s.trim());
			s = "";
			
			Persona p = new Persona (nombres,apellidos,noTelefonico);
			ISaveData save = SaveDataImp.getInstance();
			save.savePersona(p);
			main(null);
		}
		else if (o.intValue() == 2)
		{
			System.out.println("Lidstado de personas::");
			System.out.println("Nombres    --    Apellidos   ---   Telefono");
			ILoadData datos = LoadDataImp.getInstance();
			Vector<Persona> personas = null;
			try {
				personas = datos.getContactos();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if (personas != null)
			{
				java.util.Iterator<Persona> i = personas.iterator();
				while (i.hasNext())
				{
					Persona p = (Persona) i.next();
					System.out.println(p.getNombres() + " - " + 
							p.getApellidos() + " - " + 
							p.getTelefono());
				}
			}
			else
				System.out.println("No hay Registros");
			main(null);
			
		}
		else if (o.intValue() == 3)
		{
			System.out.println("Ingrese el telefono a borrar");
			while(( c = (char) System.in.read()) != '\n')
			{
				s = s + String.valueOf(c);
			}
			telefono = String.valueOf(s.trim());
			s = "";
			ISaveData save = SaveDataImp.getInstance();
			save.deleteTelephone(telefono);
			System.out.println("Realizado");
			main(null);
		}
		else if (o.intValue() == 4)
		{
			System.out.println("Ha Terminado la aplicacion, Adios");
		}
		else
		{
			System.out.println("Ingrese una opcion del menu");
			System.out.println("----++++----");
			main(null);
		}
	}

}
